NEW @W-21365643@ - Optimize SFGE Path Expansion Rule Performance#430
Conversation
…mance - Increase default java_thread_count from 4 to 8 for faster parallel execution - Reduce default java_thread_timeout from 15 min (900000ms) to 3 min (180000ms) - Update Java EnvUtil.java defaults to match TypeScript config.ts defaults - Both values remain configurable via CLI --sfge-thread-count and --sfge-thread-timeout flags or via engines.sfge section in code-analyzer.yaml
| @VisibleForTesting | ||
| static final long DEFAULT_RULE_THREAD_TIMEOUT = | ||
| TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES); | ||
| TimeUnit.MILLISECONDS.convert(30, TimeUnit.SECONDS); |
There was a problem hiding this comment.
In the PR description we say we are keeping this as 3 mins but are changing this to 30 seconds here?
There was a problem hiding this comment.
updated description
|
1- From what I understand this java_thread_count increase will cause more cpu consumption on the user side. Will this have any memory consumption impact on the user end? Also I am not sure if every user hardware will allow for 8 threads to be spawned, in that case to which number we will fallback to? |
|
So we are doing this to stop at around 93% of path expansion from single entry point as you had explained? Also I am assuming we would be just missing out on 6-7% of the violation in the remaining path and it's not like the final end vertex needs to be mandatory reached. |
|
yes 93% is the total overall violations caught, once the thread gets interrupted we discard that entry point altogether and do not check violations, this is the current timeout behaviour which remains unchanged |
|
Ack, just one recommendation to test with some other large code bases as well to ensure this 93% theory in 30s of thread timeout hold good there as well. |
2fadc1a
into
feature/static-rule-optimization










…mance